Day10提到了workspace & packages,workspace就是一個專案資料夾,packages則是專案內的程式包。
在開始建立自己撰寫的packages前,可以先夠過官方提供的turtlesim了解其他ROS2概念:
上圖包含了3個Nodes、1個Topic、1個Service,從動圖可以稍微看出彼此的關係。
ROS中,節點是最最最基本的元素,它能夠過topics、services、actions、parameters的方式完成接收/發送資訊的工作,一個完整的機器人系統會包含許多節點,節點不一定是實體,例如:控制速度的程式可以是一個節點、機器手臂可以是一個節點,一個執行檔(executables,一個cpp或py的程式檔案)可以包含一個或多個節點。
執行檔: executable,一個cpp或py的程式檔案,或一個軟體執行檔(gazebo、rviz2)
依然以turtlesim為例,開啟一個執行檔,生成有小烏龜的圖形界面。
ros2 run turtlesim turtlesim_node
ros2 node list #列出所有正在執行的節點
可以看到目前有一個名字預設為turtlesim的節點,如果想改名可以用Remapping的方式
ros2 run turtlesim turtlesim_node --ros-args --remap __node:=my_turtle
用ctrl+c
中止turtlesim舊節點,開啟新的my_turtle節點。
ros2 node info /my_turtle #得到目前節點的相關資訊
裡面包含了訂閱者(topics)、發布者(topics)、services和actions的詳細資訊。
可以在run一個鍵盤(上下左右鍵)控制節點來控制小烏龜移動
ros2 run turtlesim turtle_teleop_key
想要的話也可以對他們使用上面屬於node的指令
ros2 node list #列出所有正在執行的節點
ros2 node info #得到目前節點的相關資訊
如果忘記的話可以打完ros2 node後按鍵盤的tab
跳出提示~
明天是topics和services~~